package com.example.design.shejimoshi.action.visitor.practice1;

import com.example.design.shejimoshi.action.visitor.practice1.element.PdfFile;
import com.example.design.shejimoshi.action.visitor.practice1.element.ResourceFile;
import com.example.design.shejimoshi.action.visitor.practice1.visit.Compressor;
import com.example.design.shejimoshi.action.visitor.practice1.visit.Extractor;
import com.example.design.shejimoshi.action.visitor.practice1.visit.Visitor;

import java.util.ArrayList;
import java.util.List;

/**
 * 客户端
 */
public class ToolApplication {
    public static void main(String[] args) {
        // 加载所有元素
        List<ResourceFile> resourceFiles = loadAllResourceFiles(args[0]);

        // 遍历所有元素，并使用文本提取器处理这些元素
        Visitor extractorVisitor = new Extractor();
        for (ResourceFile resourceFile : resourceFiles) {
            resourceFile.accept(extractorVisitor);
        }

        // 遍历所有元素，并使用文本压缩器处理这些元素
        Visitor compressorVisitor = new Compressor();
        for (ResourceFile resourceFile : resourceFiles) {
            resourceFile.accept(compressorVisitor);
        }
    }


    private static List<ResourceFile> loadAllResourceFiles(String resourceDirectory) {
        List<ResourceFile> resourceFiles = new ArrayList<>();
        resourceFiles.add(new PdfFile("a.pdf"));
        return resourceFiles;
    }
}